;
; FICHERO DE AYUDA PARA EL TUTOR DE C/C++
;

; PANTALLA DE PRESENTACION
begin
No hay ayuda de la pantalla de presentación.
end

; MENU PRINCIPAL
begin
AYUDA SOBRE EL MENU PRINCIPAL
-----------------------------


OPCIONES DE ESTE MENU:

  1. Información general: Visualiza fichero tutor.doc el cual
     es una especie de manual de usuario; en este fichero se
     encuentra todo tipo de información acerca del programa.

  2. Tutor de C: Seleccionamos el lenguaje C para estudiar. A
     partir de este momento, todos los menús e informaciones se
     referirán al lenguaje C.

  3. Tutor de C++: Seleccionamos el lenguaje C++ para estudiar.
     A partir de este momento, todos los menús e informaciones
     se referirán al lenguaje C++.

  La línea superior siempre indica el lugar en el que estamos
  situados, así que en ella se visualiza a partir del menú
  principal, el lenguaje (C o C++) seleccionado.


INDICADOR DE TURBO:

  El indicador de turbo indica si el usuario desea estudiar
  Turbo C y Turbo C++, ambos de Borland International, además
  de los estándares ANSI C y ANSI C++.

  Por defecto, la opción de turbo está activada (está puesta
  a on), lo que quiere decir que el tutor mostrará las mejoras
  que aporta las versiones de los Turbo de Borland a los están-
  dares de los lenguajes C y C++. Si el usuario desactiva este
  indicador (lo pone a off), el programa sólo le enseñará al
  usuario los lenguajes C y C++ correspondientes a los están-
  dares ANSI.

  La opción de turbo se puede desactivar pulsando la combinación
  de teclas ALT-T desde el menú principal. La línea inferior
  siempre indica todas (o la mayoría) de las teclas disponibles
  en cada momento.


TECLADO:

  Las teclas disponibles en esta pantalla son:

  - F1: Muestra esta ventana de ayuda.

  - ALT-T: Activa/desactiva turbo.

  - ESC: Regresar a pantalla anterior, es decir al sistema
    operativo; en el menú principal, la pulsación de esta
    tecla es equivalente a la pulsación de las teclas ALT-X.

  - ALT-X: Abandonar tutor.

  - Teclas de menú:

    · Cursor izquierdo y cursor arriba: cambian la opción
      activa del menú a la opción anterior. Si la opción
      activa actualmente es la primera, estas teclas hacen
      que la nueva opción activa del menú sea la última.

    · Cursor derecho y cursor abajo: cambian la opción
      activa del menú a la opción siguiente. Si la opción
      activa actualmente es la última, estas teclas hacen
      que la nueva opción activa del menú sea la primera.

    · Inicio y Página arriba: ponen la primera opción del
      menú como opción activa.

    · Fin y Página abajo: ponen la última opción del menú
      como opción activa.

    · Return (llamada también Enter): acepta opción activa
      actual.

    · Letra correspondiente a letra sobreimpresionada en el
      menú: pone opción del menú que contiene esa letra
      sobreimpresionada como opción activa y además la acepta,
      es decir, que equivale a poner dicha opción como opción
      activa y pulsar Return.

    Todas las teclas de menú descritas son válidas para
    cualquier menú que aparezca en el programa.


RATON:

  Si el usuario posee un ratón y el controlador de ratón está
  cargado podrá realizar prácticamente todas las operaciones con
  el ratón. Sólo hay una cosa que no se puede hacer con el ratón
  en este programa: la introducción de texto en las ventanas de
  edición, aunque sí podemos cambiar la posición del cursor de
  texto con el ratón en dichas ventanas.

  Características del ratón válidas para todo el programa:

  - La pulsación del botón izquierdo del ratón tiene el signi-
    ficado de aceptar pero no con el mismo significado que la
    tecla Return de teclado. El efecto que se consigue con la
    pulsación de este botón depende de la posición del cursor
    del ratón en ese momento.

    Si el botón izquierdo del ratón se pulsa entre la primera
    y última letra de unos de los mensajes de la línea inferior,
    se activa la acción descrita por ese mensaje. Por ejemplo,
    si el mensaje es "F1 Ayuda", se puede pulsar el botón iz-
    quierdo entre la F y la a del mensaje para activar la ayuda.

    En el caso de los menús, la pulsación del botón izquierdo
    del ratón mientras el cursor de éste se encuentra en una
    opción del menú es equivalente a la pulsación de la tecla
    sobreimpresionada de esa opción, es decir, activa dicha
    opción.

  - La pulsación del botón derecho del ratón es siempre
    equivalente a la pulsación de la tecla Esc.

  - La pulsación del botón central del ratón, en caso de que
    el ratón disponga de tres botones y el controlador del
    ratón trabaje con tres botones, es siempre equivalente a
    la pulsación de la tecla F1.

  - Un doble clic con el botón derecho del ratón es siempre
    equivalente a la pulsación de la tecla ALT-X.

  - La pulsación simultánea de los botones izquierdo y derecho
    del ratón es siempre equivalente a pulsar las teclas ALT-X
    dos veces consecutivas, es decir, abandonar el tutor inme-
    diatamente (sin confirmación).

  Características del ratón referentes exclusivamente al menú
  principal:

  - La pulsación del botón izquierdo del ratón en el interior
    de la ventana que contiene el valor actual del indicador
    de turbo (ventana que está debajo de la ventana de menú) es
    equivalente a la pulsación de las teclas ALT-T desde teclado,
    es decir, conmuta el valor del indicador.


ARGUMENTOS:

  Los argumentos que se les puede pasar al programa desde la
  línea de órdenes del sistema operativo y que están relacionados
  con esta pantalla son los siguientes:

  - mp n: Hace que la primera vez que se acceda al menú principal,
    se active automáticamente la opción número n (1 ≤ n ≤ 3). De
    esta forma podemos acceder directamente a un determinado pun-
    to del programa sin pasar por etapas previas.

  - nt: Las iniciales nt significan no turbo. Este argumento
    hace que el indicador de turbo esté a off por defecto. Esta
    opción como otras muchas tiene utilidad en ficheros batch:
    si el usuario sólo va a estudiar los estándares de los len-
    guajes cada vez que entre en el programa, se puede crear un
    fichero con extensión bat que esté formado por la siguiente
    línea:
    turbo nt

  Otros argumentos que afectan a la totalidad del programa son:

  - ndv: Estas iniciales significan no directo a vídeo. Por
    defecto, la salida de este programa va directamente a la
    RAM de vídeo. Este método es mucho más rápido que utilizar
    las interrupciones de la ROM BIOS, sin embargo, también es
    menos portable. Aunque en la mayoría de los ordenadores, el
    programa funciona bien accediendo directamente a la memoria
    RAM de vídeo, si hay alguno en el que esto no sea así, se
    puede llamar al programa con la opción ndv para que la sa-
    lida a pantalla sea vía interrupciones de la ROM BIOS que es
    mucho más portable.

  - rr ms: ms es el número de milisegundos de retraso de ratón.
    Para trabajar correctamente con el ratón, cada vez que se
    pulsa un botón, se genera un retardo; un retardo es un tiem-
    po de computación en el que no se hace nada. El valor por
    defecto está puesto a 200 milisegunos, no obstante, si el
    usuario desea otro, puede cambiarlo con este parámetro.

  - parámetros p y x: Este programa está diseñado con overlays,
    esto quiere decir, que no todo el programa ejecutable tiene
    porqué estar al mismo tiempo en memoria y que lo más normal
    es que haya módulos en disco y otros en memoria durante la
    ejecución del programa. Cuando se va a ejecutar una instruc-
    ción de un módulo que se encuentra en disco, éste se carga
    en memoria descargándose uno o varios que haya en memoria
    si no cabe el que va a entrar. En resumen, en los programas
    diseñados con overlays, hay intercambios entre disco y me-
    moria convencional. Con el parámetro p se consigue que los
    intercambios se hagan entre memoria expandida y memoria
    convencional. Con el parámetro x se consigue que los inter-
    cambios se hagan entre memoria extendida y memoria convencio-
    nal. Esto supone un incremento en la velocidad de ejecución
    del programa. Antes de utilizar estas dos opciones, leer las
    observaciones al respecto que ofrece el programa con la op-
    ción ?.

  Los otros argumentos no mencionados aquí se explicarán en las
  ayudas de las pantallas a las que afectan dichos argumentos.

end

; INFORMACION GENERAL
begin
AYUDA SOBRE LA INFORMACION GENERAL
----------------------------------

El proceso de información general consiste en la visualización
del fichero tutor.doc. Este fichero es un manual de usuario
donde hay todo tipo de información relativa al tutor.


TECLADO:

Las teclas disponibles en este proceso son las teclas generales
del tutor (F1, ESC y ALT-X) y las teclas de visualización. Estas
últimas son comunes a todas las ventanas de visualización que
aparecen en el programa.

Las teclas de visualización son las siguientes:

- Flechas izquierda, derecha, arriba y abajo (LEFT, RIGHT, UP y
  DOWN): mueven el cursor una posición a la izquierda, a la dere-
  cha, arriba y abajo, respectivamente.

- Control flecha izquierda y control flecha derecha (CTRL-LEFT y
  CTRL-RIGHT): mueven el cursor 15 posiciones sucesivas a la
  izquierda y derecha respectivamente.

- Página arriba y página abajo (PGUP y PGDN): mueven el cursor
  una página de visualización arriba y abajo respectivamente.

- Control página arriba y control página abajo (CTRL-PGUP y
  CTRL-PDN): mueven el cursor al principio y al final, respec-
  tivamente, de la información a visualizar, pero manteniendo
  la misma columna de visualización.

- Inicio y fin (HOME y END): mueven el cursor al principio y al
  final, respectivamente, de la información a visualizar, pero
  visualizando a partir de la primera columna de dicha informa-
  ción a visualizar.

- Alternativa c (ALT-C): pone y quita el modo cursor.

- Control b (CTRL-B): busca un texto en la ventana de visualiza-
  ción. Se pide la introducción del texto y la búsqueda empieza
  por la primera línea. Si se encuentra, la primera línea visua-
  lizada contendrá el texto buscado; si no se encuentra, se vi-
  sualizará un mensaje que nos informa de ello.

- Control r (CTRL-R): repetir búsqueda. No se pide la introduc-
  ción del texto porque ya se introdujo anteriormente. La bús-
  queda empieza en la línea siguiente a la línea en la que se
  encontró el texto la última vez. Si no se encuentra el texto
  o la última búsqueda no tuvo éxito, se visualizará un mensaje
  que nos informa de ello. Si se encuentra, la primera línea
  visualizada contendrá el texto buscado.

- Control a (CTRL-A): Búsqueda adelante. Es similar a CTRL-B
  pero con dos diferencias. La primera es que se solicita la
  introducción del texto con el texto anterior por defecto. La
  segunda diferencia es que la búsqueda empieza a partir de la
  primera línea visualizada en la ventana, inclusive ésta.

- Escape (ESC): sale de la visualización.

Si se está en modo cursor, se visualiza el cursor de texto. Si
no se está en modo cursor, el cursor de texto es invisible. Al
crear una ventana de visualización se está por defecto en modo no
cursor porque es mucho más cómodo para visualizar un texto. En
modo cursor, mover el cursor una posición hacia arriba, signifi-
ca mover el cursor de texto una línea hacia arriba; sin embargo,
en modo no cursor significa visualizar la línea no visualizada
inmediatamente anterior a la primera línea visualizada del texto.

Cuando se intenta ver más líneas hacia abajo del texto y el texto
de la ventana no se mueve es que ya está visualizada en la venta-
na la última línea del texto a visualizar.

Algunas ventanas de visualización tienen una barra vertical y/o
una barra horizontal en los lados derecho e inferior respectiva-
mente. Si no aparece la barra horizontal significa que el texto
no se puede desplazar a izquierda y derecha en la pantalla.

Estas barras tienen dos utilidades:

1ª) Nos informan del lugar del texto en el que estamos situados
actualmente, es decir, lugar del cursor (ya sea real como en
modo cursor o virtual como en modo no cursor).

2ª) Movernos a través del texto con el ratón. Esto se explica en
el siguiente punto.

En muchas ventanas de visualización también aparecen unos números
en la esquina superior derecha de la ventana. Hay tres posibles
formatos de estos números:

1) Cuando sólo hay barra vertical:         l1-l2
2) Cuando sólo hay barra horizontal:       c1-c2
3) Cuando hay barra horizontal y vertical: l1-l2:c1-c2

donde l1 y l2 representan, respectivamente, los números de
la primera y última línea visualizada; y c1 y c2 representan,
respectivamente, los números de la primera y última columna
visualizada.


RATON:

Pulsando el botón izquierdo del ratón en algunas regiones de
la ventana de visualización se obtienen algunas acciones que
se discuten a continuación. Todo lo que se va a decir del
ratón en los puntos siguientes es válido para todas las
ventanas de visualización.

- Pulsar el botón izquierdo sobre la flecha hacia arriba de la
  barra vertical es equivalente a pulsar el cursor con flecha
  hacia arriba.

- Pulsar el botón izquierdo sobre la flecha hacia abajo de la
  barra vertical es equivalente a pulsar el cursor con flecha
  hacia abajo.

- Pulsar el botón izquierdo sobre la flecha izquierda de la barra
  horizontal es equivalente a pulsar el cursor con flecha hacia
  la izquierda.

- Pulsar el botón izquierdo sobre la flecha derecha de la barra
  horizontal es equivalente a pulsar el cursor con flecha hacia
  la derecha.

- Pulsar el botón izquierdo en una posición de la barra vertical
  entre la flecha arriba y el cursor de la barra es equivalente
  a pulsar página arriba.

- Pulsar el botón izquierdo en una posición de la barra vertical
  entre el cursor de la barra y la flecha abajo es equivalente
  a pulsar página abajo.

- Pulsar el botón izquierdo en una posición de la barra horizon-
  tal entre la flecha izquierda y el cursor de la barra es equi-
  valente a pulsar las teclas control más cursor izquierda.

- Pulsar el botón izquierdo en una posición de la barra horizon-
  tal entre el cursor de la barra y la flecha derecha es equiva-
  lente a pulsar las teclas control más cursor derecha.

Si en cualquiera de las 8 posiciones anteriores se presiona el
botón izquierdo del ratón sin soltarlo, no se genera el retardo
y el proceso iterativo es más rápido.

- Pulsar el botón izquierdo del ratón en una posición interior
  de la ventana (en una posición de texto de visualización) en
  modo cursor hace que el cursor de texto se coloce en el lugar
  en el que está el cursor del ratón. No se puede situar el cur-
  sor de texto por debajo de la última línea de texto a visuali-
  zar.


ARGUMENTOS:

A la información general se puede entrar directamente desde la
línea de órdenes del sistema operativo llamando al programa
TUTOR.EXE de la siguiente forma:

  tutor np mp 1

El fichero que se visualiza por defecto es el TUTOR.DOC, el
cual contiene el manual de usuario del paquete de programas
y ficheros que forma este tutor. No obstante se puede visua-
lizar otro fichero desde la opción 1 del manual de usuario
si se llama al programa como sigue:

  tutor fmu nuevo_nombre_de_fichero

end

; MENU DE LECCIONES C
begin
AYUDA SOBRE EL MENU DE LECCIONES DEL LENGUAJE C
-----------------------------------------------

La explicación del lenguaje C en este tutor se ha dividido en
12 lecciones. En el menú de lecciones aparece el título de cada
lección. En la ventana de información (ventana que hay entre la
ventana de menú y la línea inferior) se expone un pequeño resumen
de la lección. Cada lección empieza, ya en el proceso de teoría,
con el tema principal que se va a estudiar en la lección y un
índice completo de todos los puntos que se explican en ella.


LECCIONES:

Las lecciones de C son:

- Lección  1: Introducción al lenguaje C.
  Introducción al lenguaje, orígenes, características, uso y
  tres programas.

- Lección  2: Tipos, operadores y expresiones.
  Datos, tipos, operadores, expresiones, declaraciones,
  inicializaciones.

- Lección  3: Sentencias de control de programa.
  Sentencias de control: if, switch, while, for, do, break,
  continue, goto.

- Lección  4: Algunas funciones del lenguaje C.
  Funciones de control de programa, funciones de E/S y funciones
  de consola.

- Lección  5: Variables y funciones.
  Declaración y definición de las variables y funciones. Tipos
  de variables.

- Lección  6: Arrays.
  Declaración, utilización e inicialización de arrays.

- Lección  7: Punteros.
  Declaración, utilización e inicialización de punteros.

- Lección  8: Tipos compuestos de datos.
  Estructuras, campos de bits, uniones, enumeraciones y
  definición de tipos.

- Lección  9: Entrada y Salida (E/S). Ficheros.
  Flujos y ficheros. Estructura FILE. Librerías <stdio.h> y
  <io.h>.

- Lección 10: La biblioteca de C. (Parte I)
  Ficheros que se estudian: limits.h, stddef.h, ctype.h,
  string.h, mem.h, math.h, conio.h, graphics.h.

- Lección 11: La biblioteca de C. (Parte II)
  Ficheros que se estudian: setjmp.h, signal.h, alloc.h,
  process.h, dir.h, dos.h, bios.h. También se estudia la
  palabra clave interrupt de Turbo C.

- Lección 12: La biblioteca de C. (Parte III)
  Ficheros que se estudian: stdlib.h, time.h, locale.h,
  sys\timeb.h, sys\stat.h, values.h, float.h. También se
  estudia la palabra clave asm de Turbo C.


ARGUMENTOS:

La selección de opción de este menú la primera vez que se accede
a él se puede hacer de forma automática con el argumento lección
(también se puede escribir de forma abreviada: l) desde la línea
de órdenes del sistema operativo. Por ejemplo, si se llama al
tutor de la forma:

  tutor np mp 2 l 2

la primera pantalla que ve el usuario es la pantalla del menú de
tareas con la lección 2 del lenguaje C seleccionada.


TECLAS DE MENU:

Las teclas de menú y los botones del ratón relacionados con el
menú están descritos en la ayuda correspondiente al menú prin-
cipal.

end

; MENU DE LECCIONES C++
begin
AYUDA SOBRE EL MENU DE LECCIONES DEL LENGUAJE C++
-------------------------------------------------

La explicación del lenguaje C++ en este tutor se ha dividido en
12 lecciones. En el menú de lecciones aparece el título de cada
lección. En la ventana de información (ventana que hay entre la
ventana de menú y la línea inferior) se expone un pequeño resumen
de la lección. Cada lección empieza, ya en el proceso de teoría,
con el tema principal que se va a estudiar en la lección y un
índice completo de todos los puntos que se explican en ella.


LECCIONES:

Las lecciones de C++ son:

- Lección 1: Introducción al C++.
  Idea general y origen del lenguaje C++. Programación orientada
  a objetos (OOP). Características principales de la OOP: encap-
  sulación, herencia y polimorfismo. Forma de implementar las
  clases en C++.

- Lección 2: C++ como una mejora del C.
  Nuevas características de C++ no orientadas a objeto.

- Lección 3: Clases.
  El tipo compuesto struct. Visibilidad de los miembros de un
  objeto (private y public). Tipos compuestos struct y class.
  Declaración de funciones miembros. Operador de resolución de
  ámbito (::). Miembro static. Clases anidadas. Estructuras y
  uniones (struct y union). Punteros a miembros (::*, .* y ->*).
  Precedencia de operadores.

- Lección 4: Constructores y destructores.
  Concepto de constructor y destructor. Constructores y des-
  tructores de objetos estáticos. Almacenamiento libre. Vec-
  tores de objetos de clase. Objetos como miembros. Autorre-
  ferencia (el puntero this). Funciones miembros constantes.
  Funciones miembros volátiles.

- Lección 5: Conversiones y sobrecarga de operadores.
  Conversiones tradicionales. Conversiones de TAD's. Algoritmo
  de selección de función sobrecargada. Especificador friend.
  Sobrecarga de operadores. Objetos grandes. Asignación e ini-
  cialización. Ejemplo de sobrecarga de algunos operadores.

- Lección 6: Herencia simple.
  Clases derivadas. Modificadores de acceso public, private
  y protected. Punteros a clases derivadas. Funciones vir-
  tuales. Funciones puras. Clases abstractas. Jerarquía de
  clases.

- Lección 7: Herencia múltiple.
  Forma general de declarar una clase. Jerarquía circular.
  Ambigüedad en los miembros. Herencia virtual (clases vir-
  tuales). Orden de llamada a los constructores y los des-
  tructores. Destructores virtuales. Orden de ejecución de
  un programa en Turbo C++. Algunos ejemplos curiosos.

- Lección 8: Flujos. Entrada/Salida.
  Jerarquía de clases de E/S. Ficheros de cabecera: iostream.h,
  fstream.h y strstream.h. Clases definidas en iostream.h:
  streambuf, ios, istream, ostream, iostream, istream_withassign
  y ostream_withassign. Clases definidas en fstream.h: filebuf,
  fstreambase, ifstream, ofstream y fstream. Clases definidas en
  strstream.h: strstreambuf, strstreambase, istrstream, ostrstream
  y strstream. Clases bcd y complex.


ARGUMENTOS:

La selección de opción de este menú la primera vez que se accede
a él se puede hacer de forma automática con el argumento lección
(también se puede escribir de forma abreviada: l) desde la línea
de órdenes del sistema operativo. Por ejemplo, si se llama al
tutor de la forma:

  tutor np mp 3 l 2

la primera pantalla que ve el usuario es la pantalla del menú de
tareas con la lección 2 del lenguaje C++ seleccionada.


TECLAS DE MENU:

Las teclas de menú y los botones del ratón relacionados con el
menú están descritos en la ayuda correspondiente al menú prin-
cipal.

end

; MENU DE TAREAS
begin
AYUDA SOBRE EL MENU DE TAREAS
-----------------------------

OPCIONES DEL MENU:

En el menú de tareas nos encontramos todas las tareas posibles
que podemos realizar con la lección seleccionada del lenguaje
elegido. Las tareas son:

- Lección completa: Estudia lección completa, este proceso
  consiste simplemente en llamar de forma secuencial y conse-
  cutiva a los procesos de teoría, pruebas, ejemplos y ejer-
  cicios.

- Teoría: Estudia teoría de una lección. La teoría consiste en
  una sucesión de ventanas con la información adecuada en su
  interior.

- Pruebas: No está implementado todavía. Será una especie de
  debugger donde se puede ver cómo se ejecuta un programa paso
  a paso y cómo van variando los valores de sus variables.

- Ejemplos: Consiste en una sucesión de ventanas de visualización
  conteniendo cada una de ellas un programa completo de C o C++,
  según lenguaje seleccionado, los cuales los podemos ejecutar,
  copiarlos a un fichero e imprimirlos, aparte de verlos con la
  ventana de visualización para ver cómo están implementados.

- Ejercicios: Proceso en el cual se propone al usuario una serie
  de ejercicios. Hay cuatro tipos de ejercicios: tests, preguntas
  con comprobación, preguntas sin comprobación y propuestas de
  programas. Cada uno de estos tipos de ejercicios se detallarán
  en las ayudas sobre los ejercicios.


ARGUMENTOS:

La selección de la opción de este menú la primera vez que se
accede a él se puede hacer de forma automática con el argumento
tarea (también se puede escribir de forma abreviada: t) desde
la línea de órdenes del sistema operativo. Por ejemplo, si se
llama al tutor de la forma:

  tutor np mp 2 l 3 t 2

se entra directamente a la teoría de la lección 3 del lenguaje C.

Hay otro argumento particularmente interesante con respecto a las
tareas: tc. El significado de tc es tarea circular.

Los cuatro tipos de tareas empiezan y terminan con una ventana
que indica el principio y el final, respectivamente, de la tarea
seleccionada para la lección y lenguaje elegido.

Por defecto, las tareas no son circulares, esto quiere decir
que si estamos en la primera ventana de una tarea y retrocedemos
a la ventana anterior, nos salimos de la tarea. Lo mismo ocurre
si estamos en la última ventana de una tarea e intentamos ir a
la siguiente ventana o pantalla, igualmente nos saldremos de la
tarea.

Si utilizamos el argumento tc en la llamada al programa, las
tareas son circulares, esto es, que si estamos en la primera
ventana de una tarea y nos vamos a la anterior, nos vamos en
realidad a la última ventana. Y lo mismo se puede decir del
proceso contrario, es decir, que si estamos en la última ven-
tana de una tarea e intentamos ir a la siguiente, nos vamos a
la primera ventana.

Siempre se sabe cuáles son la primera y última ventana de una
tarea porque se indica en el mensaje contenido en la ventana.


TECLAS DE MENU:

Las teclas de menú y los botones del ratón relacionados con el
menú están descritos en la ayuda correspondiente al menú prin-
cipal.

end

; TEORIA
begin
AYUDA SOBRE LA TEORIA
---------------------

El proceso de teoría consiste en una serie de ventanas conte-
niendo cada una de ellas en su interior el texto de teoría.

Hay dos tipos de ventanas según la barra vertical:

- Ventanas sin barra vertical: se ve todo el texto que contiene
  sin tener que desplazarlo. Nota: a veces hay que verlo completo
  tras pulsar una o varias veces una tecla, pero nunca se desplaza
  hacia arriba y abajo como en las ventanas con barra vertical.

- Ventanas con barra vertical: sólo se ve en la ventana una
  parte del texto que contiene, para ver el resto tenemos que
  desplarlo hacia arriba y hacia abajo con las teclas de vi-
  sualización o con el botón izquierdo del ratón. Las teclas
  y botones del ratón relacionados con las ventanas de visua-
  lización están explicados en la ayuda correspondiente a la
  información general (opción 1 del menú principal).

Tras visualizar cada ventana, el programa espera la pulsación de
una tecla por parte del usuario.

A menudo se producen borrados de pantalla de teoría cuando se
acumulan muchas ventanas en la pantalla.

Podemos hacer otra clasificación de ventanas según su contenido:

- Ventanas de control: estas ventanas están formadas por la
  primera y última, e indican el principio y el final de la
  teoría de esa lección. Las ventanas de partición, que se
  explican al final de esta ventana de ayuda, también están
  incluidas en esta categoría, pues indican el principio y
  el final de la teoría que se encuentra en memoria.

- Ventanas de teoría: estas ventanas contienen en su interior
  texto de teoría relativa a la lección del lenguaje seleccio-
  nado.


TECLAS:

Las teclas disponibles en el proceso de teoría son las
siguientes:

- F1: Muestra esta ayuda.

- F4: Imprime la teoría que hay cargada en memoria en la
  impresora.

- ESC: Termina proceso de teoría. Si el proceso de teoría lo
  activó el proceso de lección completa, la pulsación de la
  tecla de escape hará que el proceso continúe en las pruebas.
  Si por el contrario, el proceso de teoría lo activó el usuario
  directamente desde el menú de tareas, al pulsar éste la tecla
  de escape, el programa volverá el menú de tareas.

- ALT-X: Abandonar tutor. Siempre que se pulsa estas teclas se
  pide la confirmación al usuario a través de un menú.

- Teclas de visualización: descritas en la ayuda de la informa-
  ción general. Recordar que las teclas cursor izquierda, cursor
  derecha, control más cursor izquierda y control más cursor de-
  recha sólo se usan en las ventanas de visualización cuando és-
  tas tienen barra horizontal, y en el proceso de teoría no hay
  ninguna ventana con barra horizontal.

- Tecla cursor izquierda: vuelve a la ventana anterior. Si esta-
  mos en la primera ventana y las tareas no son circulares, la
  pulsación de esta tecla es equivalente a la pulsación de la
  tecla de escape.

- Tecla cursor derecha: vamos al punto siguiente. El punto si-
  guiente puede ser o bien la ventana siguiente o bien visuali-
  zar otro trozo de texto en la ventana actual, ya que en algu-
  nas ventanas el texto se visualiza por partes. Si estamos en
  la última ventana y las tareas no son circulares y además el
  punto siguiente tiene el significado de ventana siguiente,
  entonces la pulsación de esta tecla es equivalente a la pul-
  sación de la tecla de escape.

- Tecla return: la pulsación de esta tecla sólo tiene efecto en
  las ventanas de partición. Su significado se explica en la
  sección de argumentos que viene a continuación.


ARGUMENTOS:

Hay tres argumentos relacionados con el proceso de teoría que
se les puede pasar al programa en el momento de su llamada.

Estos son:

- pi n: Este argumento, en realidad, se refiere a la impresión,
  pero como la impresión es una acción que se puede realizar en
  el proceso de teoría, es un argumento que también afecta al
  mencionado proceso de teoría. Por defecto, la impresión se
  dirige al puerto paralelo número 0, que corresponde al puerto
  LPT1; pero si la impresora del usuario está conectada a otro
  puerto, deberá utilizar este argumento en la llamada al pro-
  grama en la forma que se explica en la información acerca de
  los argumentos: tutor ?.

- tc: este argumento está explicado extensamente en la ayuda del
  menú de tareas. Significa: hacer tareas circulares. Por defec-
  to las tareas son lineales.

- pt: este argumento es muy interesante porque debido al gran
  volumen de información que se maneja en el proceso de teoría,
  en el momento de leer la lección del fichero de datos y car-
  garla en memoria puede suceder, con algunas lecciones espe-
  cialmente largas, que se produzca el error de memoria insu-
  ficiente. En este caso debemos llamar al programa utilizando
  este argumento. El significado de pt es partir teoría. Por
  defecto, las lecciones de teoría se cargan completamente en
  memoria. Si se especifica este argumento, algunas lecciones
  de teoría se cargan en memoria en dos partes: cuando carga
  una, se descarga la otra. De este modo, con la opción pt, y
  en las lecciones particionables (lecciones que ocupan mucha
  memoria) siempre se encuentra una parte en memoria y otra par-
  te en disco, concretamente en el fichero de datos de teoría.
  Hay que tener en cuenta, que si se pulsa F4 se imprime sólo la
  teoría que hay cargada en memoria; así que en este caso se de-
  be pulsar F4 para cada parte cargada en memoria si se desea
  imprimir la lección completa. Cuando tenemos en memoria la
  primera parte de una lección, la última ventana de la lección
  no es aquélla que pone "Final de ..." sino la que pone "Pulsar
  ENTER...". Una cosa similar ocurre cuando tenemos cargada la
  segunda parte de la lección, en este caso, la primera ventana
  no pone "Principio de..." sino la que pone "Pulsar ENTER...".
  Como es evidente, para cargar la otra parte de la lección de-
  bemos pulsar ENTER (la tecla return) como nos indica el mensa-
  je de estas ventanas. Podemos hacer lo mismo con el ratón pul-
  sando el botón izquierdo en el interior de estas ventanas de
  partición. Cuando cargamos la primera parte de una lección, la
  primera ventana que aparece en pantalla es la que dice "Prin-
  cipio de...", pero cuando cargamos la segunda parte, la pri-
  mera ventana que aparece en pantalla es la primera ventana con
  texto de teoría y no la primera ventana real que es la que po-
  ne "Pulsar ENTER...". Después de todo lo que se ha dicho en
  este párrafo puede parecer que es muy complicado todo esto,
  pero en realidad, incluso sin esta ayuda, cualquier usuario
  sabe lo que hacer en cada momento puesto que la línea inferior
  siempre nos informa de todas las teclas disponibles y las pro-
  pias ventanas de control nos dicen lo que debemos hacer.

end

; PRUEBAS
begin
AYUDA SOBRE LAS PRUEBAS
-----------------------

El proceso de pruebas tiene el objetivo de que el usuario vea
cómo se ejecuta un programa de C y C++, esto es, que vea tanto
el flujo de ejecución que sigue un programa como los sucesivos
valores que van tomando las variables utilizadas por el programa
como la entrada y salida producida.

En las pantallas de pruebas hay tres ventanas:

  - Ventana de código: es la ventana situada a la izquierda,
  ocupa más de la mitad de la pantalla. En esta ventana se en-
  cuentra un programa completo de C o C++, según lenguaje ele-
  gido.

  - Ventana de variables: es la ventana superior derecha, está
  encabezada con el epígrafe "VARIABLES". En esta ventana se
  listan los nombres de todas las variables que utiliza el pro-
  grama de prueba junto con el valor actual de esas variables.
  A veces, en vez del valor de la variable, se muestra un men-
  saje de variable no definida o de variable no inicializada,
  según si en la línea actual de ejecución del programa se co-
  noce la existencia de esa variable o bien que ya esté decla-
  rada y sin embargo no se le haya asignado todavía ningún valor.

  - Ventana de entrada/salida: es la ventana inferior derecha,
  está encabezada por el epígrafe "ENTRADA/SALIDA". Toda la en-
  trada y salida estándar que realiza el programa de prueba es
  llavada a cabo en esta ventana. Observad la línea de estado
  inferior cuando se están leyendo datos de esta ventana, (que
  hace la función de entrada estándar); en este caso las pulsa-
  ciones de las teclas (por ejemplo, F1, ESC, etc.) son leídas
  por las funciones de entrada estándar (scanf(), cin, getche(),
  ...).

La pulsación de la tecla F10 hace que la línea actual de ejecu-
ción del programa de prueba sea la primera línea del ejemplo, es
decir, que vuelve a empezar la prueba.

También están disponibles las teclas F1, ESC y ALT-X como ocurre
a lo largo de todo el programa.

Cuando se pulsa una tecla que no sea F1, ESC, ALT-X o F10, o
bien cuando se pulsa el botón izquierdo del ratón sobre una
región no correspondiente a las mencionadas teclas, entonces,
repito, se ejecuta la línea actual del programa y se pasa a la
siguiente línea ejecutable previa actualización del contenido de
las ventanas de variables y de entrada/salida si fuera necesario.
La línea ejecutable siguiente a aquellas líneas de código en las
cuales, bien aparece la función exit(), bien aparece la palabra
clave return en la función main(), o bien aparece la llave de
cierre de la función main(), corresponde a la finalización del
programa de prueba, o sea, el ir a la siguiente línea de las
mencionadas provoca la terminación de la prueba y la vuelta al
menú de tareas (si la prueba fue invocada por el proceso de lec-
ción completa, entonces la finalización de la prueba daría lugar
al comienzo de la tarea de ejemplos).

end

; EJEMPLOS
begin
AYUDA SOBRE LOS EJEMPLOS
------------------------

El proceso de ejemplos está formado por una serie de ventanas de
visualización (excepto primera y última ventana) donde en cada
una se encuentra un programa completo en C o C++.

Con cada ejemplo podemos realizar varias operaciones:

- Verlo con las teclas de visualización o con las botones del
  ratón. Dichas teclas y botones de visualización están deta-
  llados en la ayuda de la información general (opción 1 del
  menú principal). El usuario puede observar de esta forma la
  implementación y diseño de programas completos en C y C++.
  Hay todo tipo de programas ejemplos, algunos bastante compli-
  cados.

- Copiarlo a un fichero, pulsando la tecla F2. El usuario puede
  copiar el ejemplo que visualiza en pantalla a un fichero de
  disco con el nombre que desee para compilarlo con un compila-
  dor de C (o C++) y modificarlo si lo desea.

- Imprimirlo, pulsando la tecla F4. Se supone que la impresora
  está conectada con el puerto paralelo LPT1. Si su impresora
  se encuentra en otro puerto, utilice la opción pi para que el
  programa utilice otro puerto de impresora. Para saber cómo
  utilizar este argumento, llama al tutor de las siguiente for-
  ma: tutor ?.

- Ejecutarlo, pulsando la tecla F9. Para entender cómo esta he-
  cho el programa y para saber lo que hace, lo mejor es ejecutar-
  lo. El código ejecutable de los programas ejemplos se encuen-
  tran en los ficheros prtutc.exe y prtutcpp.ces, así que estos
  fichers han de estar en el directorio de trabajo para ejecutar
  los ejemplos. Si hay poca memoria, no podrán ejecutarse los
  programas ejemplos.

Debido a que todas las teclas de los cursores se utilizan para
visualizar los ejemplos de las ventanas, hay que utilizar las
teclas F7 y F8 para ir a la anterior y próxima ventana, respec-
tivamente. Si pulsamos F7 en la primera ventana y la tarea es
lineal, nos salimos del proceso de ejemplos. Lo mismo ocurre si
pulsamos F8 estando en la última ventana con tarea lineal.

También están disponibles las teclas F1, ESC y ALT-X como ocurre
a lo largo de todo el programa.

Argumentos relacionados con este proceso: pi y tc. Ver ayuda
sobre teoría para encontrar más información sobre estos argu-
mentos.

end

; EJERCICIOS
begin
AYUDA SOBRE LOS EJERCICIOS
--------------------------

El proceso de ejercicios está formado por una serie de panta-
llas, cada una contiene un ejercicio, excepto la primera y
última que indican el principio y el final de los ejercicios.

En cada ejercicio están disponibles las teclas F1 (ayuda sobre
ese tipo de ejercicio), ESC (abandonar los ejercicios) y ALT-X
(abandonar tutor con confirmación).

Hay cuatro tipos de ejercicios:

- Tests: se hace una pregunta y el usuario ha de elegir la
  respuesta correcta entre un conjunto de opciones.

- Preguntas con comprobación: se hace una pregunta, el usuario
  escribe su respuesta en un pequeño editor, y el programa
  comprueba si la respuesta introducida es la correcta.

- Preguntas sin comprobación: se hace una pregunta, el usuario
  piensa mentalmente la respuesta, y cuando lo desee mira la
  respuesta correcta.

- Propuestas de programas: el programa propone un programa que
  ha de ser realizado por el usuario en su compilador de C o C++.

Para una información más detallada sobre cada tipo de ejercicio
tendrás que referirte a la ayuda de cada ejercicio: pulsa F1
estando en cada tipo de ejercicio.

Pulsando F4 en la primera o última ventana de ejercicios se
imprimen todos los ejercicios cargados en memoria de la lección
actual. Para imprimir un determinado ejercicio es necesario
pulsar F4 en la pantalla de ese ejercicio. Con el argumento pi
se puede seleccionar el puerto de impresora.

Debido a que todas las teclas de los cursores se utilizan en
los ejercicios (menú, editor), hay que utilizar las teclas F7
y F8 para ir al anterior y siguiente ejercicio, respectivamente.
Si pulsamos F7 en la primera ventana y la tarea es lineal, nos
salimos del proceso de ejercicios. Lo mismo ocurre si pulsamos
F8 estando en la última ventana con tarea lineal.

Argumentos relacionados con este proceso: pi y tc. Ver ayuda
sobre teoría para encontrar más información sobre estos argu-
mentos. Sólo se puede imprimir las propuestas de programas.

end

; TESTS
begin
AYUDA SOBRE LOS TESTS
---------------------

Este proceso realiza ejercicios tipo tests correspondientes a
una lección el lenguaje dado (C o C++).

La pantalla de tests consta de tres partes:

- Parte 1: En ella se hace la pregunta.

- Parte 2: Menú con varias respuestas a la pregunta de la parte
  1, entre las cuales se encuentra la verdadera.

- Parte 3: En esta parte se escribe la respuesta correcta a la
  pregunta planteada cuando lo solicita el usuario; también se
  escribe en este lugar los mensajes de acierto y de fallo
  cuando el usuario elige una opción del menú.

El usuario puede en todo momento seleccionar una respuesta del
menú y comprobar si es correcta o no; también puede ver la res-
puesta correcta mediante la pulsación de la tecla F3.

El test actual se puede imprimir con la tecla F4. El argumento pi
selecciona el puerto de impresora a utilizar.

Como en todos los tipos de ejercicios, con la tecla F7 nos vamos
al ejercicio anterior y con la tecla F8 nos vamos al sigiente
ejercicio.

También disponemos como siempre de las teclas F1, ESC y ALT-X.

end

; PREGUNTAS CON COMPROBACION
begin
AYUDA SOBRE LAS PREGUNTAS CON COMPROBACION
------------------------------------------

Este proceso consiste en una serie de preguntas a las que el
usuario debe responder en un pequeño editor. Una vez escrita
la respuesta, ésta es comparada con la respuesta correcta.

Hay tres ventanas en las pantallas de este tipo de ejercicio. En
la ventana de pregunta se escribe la pregunta. En la ventana de
introducción de la respuesta el usuario escribe la respuesta. En
la ventana de respuesta se escribe, cuando lo solicite el usua-
rio, la respuesta correcta a la pregunta planteada; también se
escribe en este lugar los mensajes de acierto y fallo cuando el
usuario termina de introducir su respuesta.

El usuario puede en todo momento ver la respuesta correcta pul-
sando la tecla F3.

El ejercicio actual se puede imprimir con la tecla F4. El
argumento pi selecciona el puerto de impresora a utilizar.

Como en todos los tipos de ejercicios, con la tecla F7 nos vamos
al ejercicio anterior y con la tecla F8 nos vamos al sigiente
ejercicio.

También disponemos como siempre de las teclas F1, ESC y ALT-X.

end

; PREGUNTAS SIN COMPROBACION
begin
AYUDA SOBRE LAS PREGUNTAS SIN COMPROBACION
------------------------------------------

Este proceso consiste en una serie de preguntas a las que el
usuario debe responder mentalmente para después comparar la
respuesta pensada con la dada por este proceso.

Hay tres ventanas en las pantallas de este tipo de ejercicio. En
la ventana de pregunta se escribe la pregunta. En la ventana de
observación se escribe un mensaje que le dice al usuario que
pulse la tecla F3 cuando desee ver la respuesta correcta. En la
ventana de respuesta se escribe la respuesta correcta a la pre-
gunta planteada.

El ejercicio actual se puede imprimir con la tecla F4. El
argumento pi selecciona el puerto de impresora a utilizar.

Como en todos los tipos de ejercicios, con la tecla F7 nos vamos
al ejercicio anterior y con la tecla F8 nos vamos al sigiente
ejercicio.

También disponemos como siempre de las teclas F1, ESC y ALT-X.

end

; PROPUESTAS DE PROGRAMAS
begin
AYUDA SOBRE LAS PROPUESTAS DE PROGRAMAS
---------------------------------------

Este proceso muestra enunciados de programas para que el usuario
los haga, compile y ejecute en un compilador del lenguaje (C o
C++).

El enunciado del programa se imprime en impresora pulsando la
tecla F4. Se supone que la impresora está conectada con el
puerto paralelo LPT1. Si su impresora se encuentra en otro
puerto, utilice la opción pi para que el programa utilice otro
puerto de impresora. Para saber cómo utilizar este argumento,
llama al tutor de las siguiente forma: tutor ?.

Pulsando la tecla F5 se llama al compilador de C o C++ que
utilice el usuario. Cuando el usuario abandone el compilador
regreserá al mismo punto del tutor desde el que se realizó la
llamada al compilador. El nombre del compilador, esto es, la
especificación completa del compilador (unidad, ruta, nombre),
debe estar en la primera línea del fichero tutor.cmp, el cual
es un fichero de texto ASCII que se puede editar con cualquier
procesador de textos que manipule ficheros de texto ASCII. El
contenido de las demás líneas (a partir de la primera) es igno-
rado. Por supuesto, la letra de la unidad y la ruta, son opcio-
nales; si no se ponen, se considerará la unidad y el directorio
de trabajo. El nombre del programa (del compilador) puede tener
todos los argumentos que se desee; la única condición o res-
tricción que se pone a ello es que el nombre del programa junto
con sus argumentos no puede sobrepasar los 255 caracteres. El
nombre del programa empezará en el primer carácter que no sea
un espacio en blanco en la primera línea del fichero. Es obvio
que el tutor no puede diferenciar un nombre de un compilador de
C o C++ de cualquier otro programa, esto implica que el usuario
puede poner el nombre de cualquier fichero de programa (exten-
siones de fichero .COM o .EXE), el nombre de cualquier fichero
de lotes (extensión .BAT) o cualquier comando interno del DOS
(como por ejemplo DIR) en la primera línea del fichero TUTOR.CMP.
Poniendo como nombre del programa COMMAND.COM se consigue un
OS SHELL, es decir, entrar en el sistema operativo DOS, desde el
cual nos salimos, para regresar al tutor, con la orden EXIT del
DOS. El fichero TUTOR.CMP se puede crear fácilmente con la uti-
lidad COMPILAD.EXE, suministrada para tal efecto; usadla del
siguiente modo: compilad tutor.cmp nombre_de_compilador_y_args.

Si se llama al tutor con el argumento prt entonces tras ejecutarse
el programa invocado con la tecla F5 y justo antes de regresar al
tutor se emitirá un mensaje diciendo que se pulse cualquier tecla
o botón del ratón para regresar al tutor.

Como en todos los tipos de ejercicios, con la tecla F7 nos vamos
al ejercicio anterior y con la tecla F8 nos vamos al sigiente
ejercicio.

También disponemos como siempre de las teclas F1, ESC y ALT-X.

end

; MENU DE ABANDONAR TUTOR
begin
AYUDA SOBRE EL MENU DE ABANDONAR TUTOR
--------------------------------------

Este menú aparece cada vez que el usuario pulsa la tecla ALT-X o
bien ESC en el menú principal.

Las teclas disponibles en este momento son las siguientes:

- Teclas de menú: Una descripción de estas teclas se encuentra
  en la ayuda del menú principal. Las teclas sobreimpresionadas
  son S para salir y N para no salir.

- F1: Muestra esta ayuda.

- ALT-X: Abandona inmediatamente el tutor.

- ESC: Anula salida y regresa al tutor.

Una forma rápida de salirnos del tutor a través del teclado es
pulsar dos veces consecutivas la combinación de teclas ALT-X.
Con el ratón nos salimos sin confirmación pulsando al mismo
tiempo los botones izquierdo y derecho.

end

; EDICION
begin
AYUDA SOBRE LA EDICION
----------------------

El proceso de edición es un editor de una sola línea.

Teclas de edición:

- Flecha izquierda y derecha: mueven el cursor una posición a la
  izquierda y a la derecha respectivamente.

- Inicio y fin: mueven el cursor al principio y al final de la
  línea de edición respectivamente.

- Control flecha izquierda y control flecha derecha: mueven el
  cursor al principio de la palabra anterior y posterior, res-
  pectivamente, de donde está situado el cursor.

- Insertar: pone y quita el modo de inserción.

- Suprimir: borra el carácter sobre el que está situado el
  cursor.

- Backspace: borra el carácter anterior al que está situado el
  cursor.

- Escape: sale de la edición.

- Enter: confirma la línea editada.

- Control-Y: borra la línea de edición.

- Control-Q Y: borra desde donde está situado el cursor hasta el
  final de la línea.

Una flecha en el lado izquierdo de la ventana de edición indica
que hay caracteres que no se ven a la izquierda de la ventana.
Una flecha en el lado derecho de la ventana de edición indica
que hay caracteres que no se ven a la derecha de la ventana.

Con el ratón podemos realizar tres operaciones en la ventana de
edición:

  - Cambiar la posición del cursor de texto al lugar en el que
    está el cursor del ratón pulsando el botón izquierdo de éste.

  - Ver un carácter a la izquierda pulsando el botón izquierdo
    del ratón sobre la flecha que apunta a la izquierda, cuando
    ésta aparece, en el borde izquierdo de la ventana. Por con-
    siguiente, desplaza los caracteres visualizados un lugar a
    la derecha.

  - Ver un carácter a la derecha pulsando el botón izquierdo
    del ratón sobre la flecha que apunta a la derecha, cuando
    ésta aparece, en el borde derecho de la ventana. Por con-
    siguiente, desplaza los caracteres visualizados un lugar a
    la izquierda.

Si en cualquiera de las 2 últimas posiciones citadas se presiona
el botón izquierdo del ratón sin soltarlo, no se genera el retar-
do y el proceso iterativo es más rápido. Esto no ocurre en la
primera situación (situar el cursor de texto en cursor de ratón)
porque no tiene sentido.

También disponemos, como siempre, de las teclas F1, ESC y ALT-X.

end
